home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection 1998 Fall: Game Toolkit / Disc.iso / SDKs / Apple Game Sprockets / SoundSprocket / SoundSprocket Release Notes < prev    next >
Encoding:
Text File  |  1996-07-08  |  5.6 KB  |  142 lines  |  [TEXT/CWIE]

  1. SoundSprocket 1.0
  2. Release Notes
  3. -----------------
  4.  
  5. Please report all bugs to sprockets@adr.apple.com!
  6.  
  7. Release Components
  8. ------------------
  9.  
  10. SoundSprocket Release Notes                - this file
  11. SoundSprocket.h                            - the header file to compile with
  12. SoundSprocketLib                        - release version of the library
  13. SoundSprocketDebugLib                    - debugging version of the library
  14. SoundSprocket Filter                    - the filter component
  15. SoundSprocket Debug Filter                - debugging version of the filter
  16. SoundSprocketTest                        - test program
  17. SoundSprocketTest.ยต                        - Metrowerks 8 project to build test
  18. SoundSprocketTest Sources                - sources for test program
  19.  
  20. Sound Manager                            - Sound Manager extension 3.2.1b14
  21. SoundLib                                - link library 3.2.1b14
  22. Sound.h                                    - replacement for Universal Headers
  23. SoundComponents.h                        - replacement for Universal Headers
  24. Sound                                    - the Sound control panel
  25.  
  26. WARNING: don't place both the debugging and non-debugging versions of the
  27. library in the search path or you will not be sure which version you will be
  28. using.
  29.  
  30. Either SoundSprocket Filter or SoundSprocket Debug Filter must be present in
  31. the Extensions folder at boot- and run-time.  Only one of them should be
  32. present or you will not be sure which version you are using.
  33.  
  34. Dependencies
  35. ------------
  36.  
  37. SoundSprocket relies upon the Sound Manager 3.2.1.  It must be present on
  38. your system (and the end-user's system) for SoundSprocket to run.
  39.  
  40. SoundSprocket requires the latest Universal Headers -- version 2.1.2 or later.
  41. You can find them on E.T.O. #20, the MacOS SDK CD-ROMs, Apple's web-site, or
  42. a number of other locations.
  43.  
  44. Compatability with Prereleases
  45. ------------------------------
  46.  
  47. SoundSprocket 1.0 is not compatible with any of the pre-release versions of
  48. SoundSprocket.  You should throw out all DR versions.
  49.  
  50. Special Considerations
  51. ----------------------
  52.  
  53.     -    If you play a sound using SndPlay, SndStartFilePlay or by sending a
  54.         bufferCmd, when the sound ends, the reverb will stop abruptly.  Worse,
  55.         this reverb tail is stored in internal buffers, and will continue when
  56.         the next sound is played in the sound channel if care is not taken.
  57.         
  58.         To fix the reverb from stopping abruptly for sounds played with these
  59.         methods, pad the sounds with enough silence to ensure that the reverb
  60.         has quieted down.
  61.         
  62.         To fix the reverb tail from showing up in the next sound, the buffers
  63.         can be flushed by sending a quietCmd to the buffer.  In general it is
  64.         a good idea to send a quietCmd between sounds separated by a gap in
  65.         time.
  66.     
  67.     -    To stop a sound while it is playing, but continue the reverb, you need
  68.         to pause the sound, wait for enough time for the reverb to run out, and
  69.         stop the sound.  If you are playing the sound with a bufferCmd then
  70.         this is a sequence of commands, rateCmd(0), wait(interval) and
  71.         quietCmd.  If you are playing the sound from disk then this is
  72.         a SndPauseFilePlay followed after the interval by a SndStopFilePlay.
  73.  
  74. API/Documentation Conflicts
  75. ---------------------------
  76.     
  77.     -    The SoundSprocket Filter contains resources that define a pane of the
  78.         Sound control panel.  The pane allows the user to control the speaker
  79.         kind and angle, much like SSpConfigureSpeakerSetup.  You may choose to
  80.         install the Sound control panel with your game, or provide a menu or
  81.         button to access SSpConfigureSpeakerSetup, or both.
  82.     
  83.     -    After the documentation was completed, it was decided that the SSpSetup
  84.         names were not specific enough.  We renamed them to SSpSpeakerSetup.
  85.         Some #defines are included in SoundSprocket.h to allow code to be
  86.         written per the documentation.  But please use the new, longer names,
  87.         as the #defines will be removed in a later release.
  88.         
  89.                 OLD NAME                NEW NAME
  90.                 siSSpSetup                siSSpSpeakerSetup
  91.                 SSpSetupData            SSpSpeakerSetupData
  92.                 SSpConfigureSetup        SSpConfigureSpeakerSetup
  93.  
  94.     -    The SndGetInfo selector siSSpFilterVersion and datatype
  95.         SSpFilterVersionData have been removed in favor of an alternate way of
  96.         accessing filter version information.  The following function may be
  97.         used for this purpose.
  98.  
  99. // **************************** GetSSpFilterVersion ****************************
  100. // Finds the manufacturer and version number of the SoundSprocket filter that
  101. // may be installed.  inManufacturer should be the manufacturer code specified
  102. // at the installation time, which may be zero to allow any manufacturer.
  103. // If no error is encountered, outManufacturer is set to the actual manufacturer
  104. // code and outMajorVersion and outMinorVersion are set to the component
  105. // specification level and manufacturer's implementation revision, respectively.
  106. OSStatus GetSSpFilterVersion(
  107.     OSType                    inManufacturer,
  108.     OSType*                    outManufacturer,
  109.     UInt32*                    outMajorVersion,
  110.     UInt32*                    outMinorVersion)
  111. {
  112.     OSStatus                err;
  113.     ComponentDescription    description;
  114.     Component                componentRef;
  115.     UInt32                    vers;
  116.     
  117.     // Set up the component description
  118.     description.componentType            = kSoundEffectsType;
  119.     description.componentSubType        = kSSpLocalizationSubType;
  120.     description.componentManufacturer    = inManufacturer;
  121.     description.componentFlags            = 0;        
  122.     description.componentFlagsMask        = 0;    
  123.     
  124.     // Find a component matching the description
  125.     componentRef = FindNextComponent(nil, &description);
  126.     if (componentRef == nil)  return couldntGetRequiredComponent;
  127.     
  128.     // Get the component description (for the manufacturer code)
  129.     err = GetComponentInfo(componentRef, &description, nil, nil, nil);
  130.     if (err != noErr)  return err;
  131.     
  132.     // Get the version composite
  133.     vers = (UInt32) GetComponentVersion((ComponentInstance) componentRef);
  134.     
  135.     // Return the results
  136.     *outManufacturer = description.componentManufacturer;
  137.     *outMajorVersion = HiWord(vers);
  138.     *outMinorVersion = LoWord(vers);
  139.     
  140.     return noErr;
  141. }
  142.